Computer-aided design (CAD) software allows a user to construct and manipulate complex three-dimensional (3D) models. A number of different modeling techniques can be used to create a 3D model. These techniques include solid modeling, wire-frame modeling, and surface modeling. Solid modeling techniques provide for topological 3D models, where the 3D model is a collection of interconnected topological entities (e.g., vertices, edges, and faces). The topological entities have corresponding supporting geometrical entities (e.g., points, trimmed curves, and trimmed surfaces). The trimmed surfaces correspond to the topological faces bounded by the edges. Wire-frame modeling techniques, on the other hand, can be used to represent a model as a collection of simple 3D lines, whereas surface modeling can be used to represent a model as a collection of exterior surfaces. CAD systems may combine these and other modeling techniques, such as parametric modeling techniques. Parametric modeling techniques can be used to define various parameters for different features and components of a model, and to define relationships between those features and components based on relationships between the various parameters.
A design engineer is a typical user of a 3D CAD system. The design engineer designs physical and aesthetic aspects of 3D models, and is skilled in 3D modeling techniques. The design engineer creates parts and may assemble the parts into a subassembly. A subassembly may also consist of other subassemblies. An assembly is designed using parts and subassemblies. Parts and subassemblies are hereinafter collectively referred to as components.
Parts, subassemblies, and assemblies can be quite complicated. A model that contains 10,000 parts is not uncommon. CAD models of agricultural vehicles, recreational vehicles, and some printer devices may likely have more than 10,000 parts. Some design engineers may wait up to thirty minutes for a CAD system to open and display a model and up to one minute or more for the completion of a basic operation, such as dragging a part on the computer screen from one location to another, or mating two components. The more complex a model is (e.g., the greater the number of parts and features therein), the greater the load on the CAD system.
The length of time taken to display a CAD model is a function of a number of factors, including the configuration of the computer system on which the modeling application (CAD software) runs. The amount of memory and the speed of the hardware processors installed on the computer system affect the performance of the modeling application. Additionally, the level of detail of the CAD model being displayed and the functionality that can be supported by the model's components influence the performance of the modeling application because both affect the amount of data that is stored, loaded, and processed.
To display a model, a CAD system creates a graphical representation of the model's geometrical entities, typically by the triangulation of the surfaces of the CAD model. Thus, in general, a typical data structure for a CAD model consists of geometric data and graphics data for all model components. The graphical representation is then rendered on a computer monitor. Creating and maintaining all geometrical entities and the graphical representation of the model may impede system performance. To address performance issues, current state-of-the-art systems may create an alternative representation of a CAD model.
The SolidWorks® 2003 software product, developed by Dassault Systèmes SolidWorks Corporation of Concord, Mass., allows an assembly to be saved as a part document consisting only of the exterior faces or visible parts of the assembly. Saving an assembly as a smaller part document facilitates file sharing. For example, SolidWorks 2003 can save a design of an intricate motor assembly as a part document, which then can be sent to another person who wants to know if the motor assembly fits in a specific frame. Sending the part document to the other person not only enables a smaller file to be transmitted, but also can safeguard the design by not sharing all the design details.
Other alternative representations of a model that may be implemented include a geometric representation only created by manually selecting faces to be represented and a graphical representation only created by tessellating the exterior faces of the model, which is an imprecise representation of the underlying geometry.
Saving only the exterior faces or visible parts of an assembly as one part document has drawbacks, which include the lack of associativity to the full model such that any changes to the one part document are not reflected back to the individual part files or the assembly file. Additionally, when saving exterior faces, all outer faces are represented in the part document no matter how small or obscured. Moreover, the design engineer has no control or knowledge of which face is actually selected during a picking process because there is no link to the original faces in the assembly from the exterior faces.
Time-saving advantages can be obtained by only storing, loading, and processing the graphical representations of the geometric entities and not the geometric entities themselves because memory is conserved and/or less paging is required on systems without sufficient amounts of random access memory to support the geometric structures. However, geometrical entities are needed for certain operations, such as mating features and annotating a 2D or 3D model. Thus, state-of-the-art CAD systems could benefit by utilizing a system or method that creates a representation of a complex model that a user could interact with in real time and that supports geometric operations without impacting system performance.